package cn.six1943.deepchat.module.ai.controller.admin.umodel.vo;

import cn.iocoder.yudao.framework.desensitize.core.slider.annotation.PasswordDesensitize;
import cn.six1943.deepchat.module.ai.dal.dataobject.model.ModelDO;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;

import java.time.LocalDateTime;
import java.util.List;

import com.alibaba.excel.annotation.*;

@Schema(description = "用户 APP - 提供商 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppProviderInstRespVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "14981")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "1官方2自定义", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("1官方2自定义")
    private Integer dataType;

    @Schema(description = "服务商id", requiredMode = Schema.RequiredMode.REQUIRED)
    private Long providerId;

    @Schema(description = "服务商api类型", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("服务商api类型")
    private String providerType;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
    @ExcelProperty("名称")
    private String name;

    @Schema(description = "图标")
    @ExcelProperty("图标")
    private String avatar;

    @Schema(description = "base_url", example = "https://www.iocoder.cn")
    @ExcelProperty("base_url")
    private String baseUrl;

    @Schema(description = "api_version")
    @ExcelProperty("api_version")
    private String apiVersion;

    @Schema(description = "api_region")
    @ExcelProperty("api_region")
    private String apiRegion;

    @Schema(description = "api_ak")
    @ExcelProperty("api_ak")
    private String apiAk;

    @PasswordDesensitize
    @Schema(description = "api_sk", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("api_sk")
    private String apiSk;

    @Schema(description = "创建人")
    @ExcelProperty("创建人")
    private Long creator;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("状态")
    private Integer status;

    @Schema(description = "模型", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("模型")
    private List<ModelDO> models;

}